#pragma once
#include "singleton.h"
#include "riftObject.h"
#include "Target.h"
#include "player.h"


class IFactory:public Singleton<IFactory>
{
public:
    typedef std::list<CTarget>        ListTargets;
public:
    IFactory();
    ~IFactory();
    bool Init();
    void Stop();
    void Reset();
    void Run();
    void SetPlayerPos();
    sPos PlayerPos();
    sPos RandomPos() const{ return m_oRandomPos;}
    CPlayer* GetPlayer();

private:
    ListGuids m_listGuids;
    sPos      m_posPlayer;
    sPos      m_oRandomPos;
    CPlayer * m_pPlayer;
};
